﻿using UnityEngine;

/// <summary>
/// Transform组件的拓展方法集合（用于简化Transform相关操作）
/// </summary>
public static class TransformExtensions
{
    /// <summary>
    /// 清除当前Transform的所有子物体（递归销毁所有子级游戏对象）
    /// </summary>
    /// <param name="transform">调用该方法的Transform组件（通过this绑定）</param>
    /// <example>
    /// // 直接在Transform组件上调用
    /// transform.ClearChildren();
    /// </example>
    public static void ClearChildren(this Transform transform)
    {
        // 倒序遍历子物体（避免正序遍历时索引错乱）
        // 例如：子物体索引为0,1,2 → 先销毁2 → 索引变为0,1 → 再销毁1 → 最后销毁0
        for (int i = transform.childCount - 1; i >= 0; i--)
        {
            // 获取子物体并销毁其GameObject（会连带销毁所有子组件和子物体）
            UnityEngine.Object.Destroy(transform.GetChild(i).gameObject);
        }
    }
}